package CutLoad.mc
{
	import CutLoad.Base;
	import CutLoad.CTipManagement;
	
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.geom.Rectangle;

	/**
	 * 从库里拿出一个元件,并组装成需要的,该类会根据特定名称的小方块做为位置和大小来向里边添加一些元件 ,这些特定的小方块的默认名称为mc,如：mc1,mc2,mc3,mc4..
	 * @author smallerbird mail:smallerbird@gmail.com  site:www.mkigm.com QQ群:49983196
	 * 
	 */	
	public class Factory extends Base
	{
		private var FT:FactoryTarget;
		/**
		 * 
		 * @param linkName 库元件名
		 * @param layoutMcCount  特定名称的小方块数量
		 * @param layoutMcNameFirst 特定名称的小方块相同的名称前缀:如mc1,mc2,mc3  相同的名称为mc
		 * 
		 */		
		public function Factory(linkName:String,layoutMcCount:Number,layoutMcNameFirst:String="mc")
		{
			var mc:MovieClip=Base.getStrClassObject(linkName) as MovieClip;
			FT=new FactoryTarget(mc,layoutMcCount,layoutMcNameFirst);
			this.addChild(mc);
		}
		/**
		 * 添加一个元素 
		 * @param base 要添加的元素
		 * @param index 放置在第几个位置   注：下标是从0开始的
		 * @param isSetWH 是否要与该位置宽度一样
		 * 
		 */		
		public function append(base:Base,index:Number,isSetWH:Boolean=false):void{
			FT.append(base,index,isSetWH);
		}
		/**
		 * 一次全部加进去 
		 * @param arr 所有元素组成的数组
		 * @param arrSetWH 是否要与该位置宽度一样,与该方法第一个参数相对应.注：该参数其实指定的值就是Factory.append(base:Base,index:Number,isSetWH:Boolean=false)  的最后一个参数.
		 * 
		 */		
		public function appendAll(arr:Array,arrSetWH:Array):void{
			FT.appendAll(arr,arrSetWH);
		}
		/**
		 * 获得某一个方块 
		 * @param index
		 * @return 
		 * 
		 */		
		public function getOne(index:Number):MovieClip{
			return FT.getOne(index);
		}
		/**
		 * 返回 某个布局小方块Rectangle信息
		 * @param index 第几个位置
		 * @return 
		 * 
		 */		
		public function getLayoutRect(index:Number):Rectangle{
			return FT.getLayoutRect(index);
		}
	}
}